<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../assets/img/favicon-144.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../assets/img/favicon-144.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../assets/img/favicon-72.png">
<link rel="apple-touch-icon-precomposed" href="../../assets/img/favicon-32.png">
<link rel="shortcut icon" href="../../assets/img/favicon-32.png">

<link rel="stylesheet" href="../../assets/css/vk.css"/>
<link rel="stylesheet" href="../../assets/css/prism.css"/>


<vk-title>VkPresentModeKHR | NVK</vk-title>

<vk-centered>

  <vk-navigation>
  <vk-search-title>Search</vk-search-title>
  <vk-search>
    <input type="text" id="search" autocomplete="off" />
    <vk-search-results>
      <ol id="search-list">
        <li id="no-search-results">No Results</li>
      </ol>
    </vk-search-results>
  </vk-search>
  <vk-section-title style="margin-top: 1em;">Categories</vk-section-title>
  <vk-categories></vk-categories>
</vk-navigation>


  <vk-struct>

    <vk-name>VkPresentModeKHR</vk-name>

    <vk-description>presentation mode supported for a surface</vk-description>

    <vk-section-title>Stub</vk-section-title>
    <vk-stub>
      <pre><code class="language-js">VkPresentModeKHR = {
  VK_PRESENT_MODE_IMMEDIATE_KHR: 0,
  VK_PRESENT_MODE_MAILBOX_KHR: 1,
  VK_PRESENT_MODE_FIFO_KHR: 2,
  VK_PRESENT_MODE_FIFO_RELAXED_KHR: 3,
  VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: 1000111000,
  VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: 1000111001
};</code></pre>
    </vk-stub>

    <vk-section-title>Properties</vk-section-title>

    <vk-properties>
      <vk-property-entry>
        <vk-property-prototype>VkPresentModeKHR.<vk-prototype-name>VK_PRESENT_MODE_IMMEDIATE_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the presentation engine does not wait for a vertical blanking period to update the current image, meaning this mode <i>may</i> result in visible tearing. No internal queuing of presentation requests is needed, as the requests are applied immediately.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPresentModeKHR.<vk-prototype-name>VK_PRESENT_MODE_MAILBOX_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the presentation engine waits for the next vertical blanking period to update the current image. Tearing <i>cannot</i> be observed. An internal single-entry queue is used to hold pending presentation requests. If the queue is full when a new presentation request is received, the new request replaces the existing entry, and any images associated with the prior entry become available for re-use by the application. One request is removed from the queue and processed during each vertical blanking period in which the queue is non-empty.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPresentModeKHR.<vk-prototype-name>VK_PRESENT_MODE_FIFO_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the presentation engine waits for the next vertical blanking period to update the current image. Tearing <i>cannot</i> be observed. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue, and one request is removed from the beginning of the queue and processed during each vertical blanking period in which the queue is non-empty. This is the only value of <b>presentMode</b> that is <b style="text-decoration:underline;">required</b> to be supported.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPresentModeKHR.<vk-prototype-name>VK_PRESENT_MODE_FIFO_RELAXED_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the presentation engine generally waits for the next vertical blanking period to update the current image. If a vertical blanking period has already passed since the last update of the current image then the presentation engine does not wait for another vertical blanking period for the update, meaning this mode <i>may</i> result in visible tearing in this case. This mode is useful for reducing visual stutter with an application that will mostly present a new image before the next vertical blanking period, but may occasionally be late, and present a new image just after the next vertical blanking period. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue, and one request is removed from the beginning of the queue and processed during or after each vertical blanking period in which the queue is non-empty.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPresentModeKHR.<vk-prototype-name>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPresentModeKHR.<vk-prototype-name>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      
    </vk-properties>

  </vk-struct>

</vk-centered>

<script>
const IS_ROOT = false;
</script>

<script type="text/javascript" src="../../assets/js/prism.min.js"></script>
<script type="text/javascript" src="../../assets/js/index.js"></script>
